Шаблонні класи С

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
КН-21

Частина тексту файла

Міністерство освіти та науки України Кафедра АСУ Лабораторна робота №5 з дисципліни ООП “ Шаблонні класи С++” Мета: ознайомитись зі структурою, синтаксисом та семантикою шаблонних класів С++, навчитись їх застосовувати при будові програмних систем. Послідовність роботи: Ознайомитись з теоретичним матеріалом про шаблонні класи. Проаналізувати результат роботи прикладу програми з використанням шаблонного класу для роботи з векторами елементів визначених типів. Виконати програму для інших значень параметрів шаблонного класу. Для заданого варіанта завдання написати з використанням шаблонних класів. Оформити звіт про роботу за такою структурою: Назва роботи; Мета роботи; Послідовність роботи; Індивідуальне завдання; Текст програми; Контрольний приклад та результати роботи програми; Висновки; Індивідуальне завдання: створити шаблонний клас – однозв’язний кільцевий список у динамічній пам’яті. Тип елементів черги визначається параметром шаблона. Передбачити функції для виконання таких операцій: занесення заданого елемента до списку, пошук мінімального та максимального елементів, виведення елементів списку на екран. Лістинг програми (код програми): #include <iostream> #include <conio.h> using namespace std; template <typename X> class list { private: struct A{ A *next; X data; }; A *head; A *last; public: list(){ head=NULL; last=NULL; } ~list(){} void add(X x){ if(!head){ A *tmp=new A; tmp->data=x; tmp->next=head; head=tmp; last=tmp; } else { A *tmp=new A; tmp->data=x; last->next=tmp; last=tmp; last->next=head; } } X list::FindMax() { X max=head->data; for(A *tmp=head; tmp!=last; tmp=tmp->next) { if (tmp->data>max) max=tmp->data; } return max; } X list::FindMin() { X min=head->data; for(A *tmp=head; tmp!=last; tmp=tmp->next) { if (tmp->data<min) min=tmp->data; } return min; } void OutList() { for(A *tmp=head ; tmp!=last; tmp=tmp->next) { cout<<tmp->data<<" "; } cout<<endl; } }; int main() { list<int> My; My.add(3); My.add(5); My.add(17); My.add(2); My.add(0); // last element zero My.OutList(); cout<<"Max="<<My.FindMax()<<endl; cout<<"Min="<<My.FindMin()<<endl; _getch(); return 0; } Скріншот виконання програми: Висновок: виконуючи дану лабораторну роботу, я ознайомився зі структурою, синтаксисом та семантикою шаблонних класів С++, навчився їх застосовувати при будові програмних систем.
Антиботан аватар за замовчуванням

29.11.2012 17:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини